package com.yhgarden.bbs.mapper.system;

import com.yhgarden.bbs.entity.system.Entity;
import org.apache.ibatis.annotations.Param;
import java.util.List;

/**
 * Created by caimb on 2017/4/27.
 */
public interface EntityMapper {
    /**
     * 创建表
     * @param entity
     * @return
     */
    public int create(Entity entity);

    /**
     * 更新表
     * @param entity 表单实体，参见 ivring-share:com.dxtech.ivring.share.entity.entity.Entity
     * @return
     */
    public int update(Entity entity);

    /**
     * 删除表单
     * @param id
     * @return
     */
    public int delete(@Param("id") String id);

    /**
     * 通过id获取表单对象
     * @param id
     * @return
     */
    public Entity getById(String id);

    /**
     * 通过id获取表单对象
     * @param id
     * @return
     */
    public Entity getByIdMoreDetail(String id);

    /**
     * 通过表名获取
     * @param tableName 表名
     * @return
     */
    public Entity getByTableName(@Param("tableName") String tableName);

    /**
     * 分页查询
     * @param entity 表单实体，参见 ivring-share:com.dxtech.ivring.share.entity.entity.Entity
     * @Param("order") order 排序方式
     * @Param("sort") sort 排序字段
     * @return 表单列表
     */
    public List<Entity> query(@Param("example") Entity entity,
                              @Param("order") String order,
                              @Param("field") String field);



    /**
     * 分页查询
     * @param entity 表单实体，参见 ivring-share:com.dxtech.ivring.share.entity.entity.Entity
     * @Param("order") order 排序方式
     * @Param("sort") sort 排序字段
     * @return 表单列表
     */
    public List<Entity> queryMoreDetail(@Param("example") Entity entity,
                                        @Param("order") String order,
                                        @Param("field") String field);

    /**
     * 分页查询
     * @param entity 表单实体，参见 ivring-share:com.dxtech.ivring.share.entity.entity.Entity
     * @Param("order") order 排序方式
     * @Param("sort") sort 排序字段
     * @return 表单列表
     */
    public List<Entity> queryForList(@Param("example") Entity entity,
                                        @Param("order") String order,
                                        @Param("field") String field);
}
